package dungeon;

import java.util.List;

/**
 * This interface represents 
 * @author Frederik
 *
 */
public interface TeleportationSquare{
	
	/**
	 * Returns one of the teleportation destinations.
	 */
	public AccessibleSquare getTeleportationDestination();
	
	/**
	 * Returns a list with all the possible teleportation destinations.
	 * 
	 * @return	A list with all the possible teleportation destinations.
	 */
	public List<AccessibleSquare> getTeleportationDestinations();
	
	/**
	 * Remove a teleportation destination from the list of teleportation destinations.
	 * 
	 * @param 	destination
	 * 			The destination that needs to be removed.
	 * @pre		The given destination must be one of this squares' teleportation destinations.
	 * 			| getTeleportationDestinations().contains(destination)
	 * @pre		There must be more than one teleportation destination for this square.
	 * 			| getTeleportationDestinations().size() > 1
	 * @post 	The given destination will be removed from the list of teleportation destinations.
	 */
	public void removeTeleportationDestination(AccessibleSquare destination);
	
	/**
	 * Add a teleportation destination to the list of teleportation destinations.
	 * 
	 * @param 	destination
	 * 			The destination that needs to be removed.
	 * @pre		The destination must not be null.
	 * 			| destination != null
	 * @post	The given destination will be added to the list of teleportation destinations.
	 */
	public void addTeleportationDestination(AccessibleSquare destination);
}